def main():
n, x = map(int, input().split())
if n == 1:
print("Yes")
print(x)
elif n == 2 and x == 0:
print("No")
elif n == 2:
print("Yes")
print(f"0 {x}")
else:
m = 1 << 17
k = 1 << 18
print("Yes")
print(f"{m} {k}", end=" ")
res = m ^ k
for i in range(1, n - 2):
print(i, end=" ")
res ^= i
print(res ^ x)
if __name__ == "__main__":
main()
#include <bits/stdc++.h>
using namespace std;
typedef long long int ll;
typedef pair<int, int> pi;
typedef pair<ll, ll> pl;
typedef vector<int> vi;
typedef vector<ll> vl;
typedef vector<vi> vvi;
typedef vector<vl> vvl;
typedef vector<pi> vpi;
typedef vector<pl> vpl;
typedef vector<vpi> vvpi;
typedef vector<vpl> vvpl;
typedef set<int> si;
typedef multiset<int> msi;
typedef set<ll> sl;
typedef multiset<ll> msl;
#define clrcin cin.ignore(numeric_limits<streamsize>::max(),'\n');
#define GOGOGO ios::sync_with_stdio(false); cin.tie(nullptr);
#define BYEBYE return 0;
#define all(cn) (cn).begin(), (cn).end()
#define rep(i, n) for (int i = 0; i < n; ++i)
#define repk(i, k, n) for(int i = k; i < n; ++i)
#define mp make_pair
#define pb push_back
#define fi first
#define se second
#define popcnt __builtin_popcount
#define gcd std::__detail::__gcd
#define lcm std::__detail::__lcm
const int INFI = 1e9 + 5;
const ll INFL = 4e18 + 5;
int main()
{
GOGOGO
int n, x; cin >> n >> x;
int xr = 0;
if (n == 1)
{
cout << "YES" << endl;
cout << x << endl;
return 0;
}
if (n == 2 && !x) cout << "NO" << endl;
else
{
cout << "YES" << endl;
if (n == 2)
{
cout << x << " " << 0 << endl;
}
else
{
for(int i = 1; i <= n - 3; ++i)
{
xr ^= i;
cout << i << " ";
}
if (xr == x)
{
cout << (1 << 17) << " " << (1 << 18) << " " << ((1 << 17) + (1 << 18)) << endl;
}
else
{
cout << 0 << " " << (1 << 17) << " " << (((1 << 17) ^ xr) ^ x) << endl;
}
}
}
BYEBYE
}
2085. Count Common Words With One Occurrence | 2089. Find Target Indices After Sorting Array |
2090. K Radius Subarray Averages | 2091. Removing Minimum and Maximum From Array |
6. Zigzag Conversion | 1612B - Special Permutation |
1481. Least Number of Unique Integers after K Removals | 1035. Uncrossed Lines |
328. Odd Even Linked List | 1219. Path with Maximum Gold |
1268. Search Suggestions System | 841. Keys and Rooms |
152. Maximum Product Subarray | 337. House Robber III |
869. Reordered Power of 2 | 1593C - Save More Mice |
1217. Minimum Cost to Move Chips to The Same Position | 347. Top K Frequent Elements |
1503. Last Moment Before All Ants Fall Out of a Plank | 430. Flatten a Multilevel Doubly Linked List |
1290. Convert Binary Number in a Linked List to Integer | 1525. Number of Good Ways to Split a String |
72. Edit Distance | 563. Binary Tree Tilt |
1306. Jump Game III | 236. Lowest Common Ancestor of a Binary Tree |
790. Domino and Tromino Tiling | 878. Nth Magical Number |
2099. Find Subsequence of Length K With the Largest Sum | 1608A - Find Array |